﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Burraco.Library
{
	public enum SessoGiocatore { SessoMaschile, SessoFemminile }
	
    public class Giocatore
    {
	
	    public static char SessoMaschile = 'M';
	    public static char SessoFemminile = 'F';
	    
        public string Nome { get; set; }
        public string Cognome { get; set; }
        public SessoGiocatore Sesso { get; set; }
        public int NumeroMatricola { get; set; }
        public string telefono { get; set; }
        public Giocatore Compagno { get; set; }
        public Torneo Torneo { get; set; }
        private List<Giocatore> listaCompagni = new List<Giocatore>();
        private List<Giocatore> listaAvversari = new List<Giocatore>();



        //public void setTorneo(Torneo t)
        //{
        //    this.Torneo = t;
        //}

        public string NomeCompleto
        {
            get
            {
                return Nome + " " + Cognome;
            }
        }

        public Giocatore(string cognome, string nome, SessoGiocatore sesso) 
        {
		    this.Cognome = cognome;
		    this.Nome = nome;	
		    this.Sesso = sesso;
	    }
	
	    public Giocatore(string cognome, string nome, int matr, Giocatore compagno) 
        {
            this.Cognome = cognome;
            this.Nome = nome;
		    this.NumeroMatricola = matr;
		    this.Compagno = compagno;
		
	    }
	
	    public void AggiungiAiCompagni(Giocatore g) 
        {
		    listaCompagni.Add(g);
	    }
	
	    public void ClearListaCompagni() 
        {
		    listaCompagni.Clear();		
	    }
	
	    public void ClearListaAvversari() 
        {
            listaAvversari.Clear();		
	    }
	
	    public void AggiungiAvversari(Giocatore g) {
		    listaAvversari.Add(g);
	    }
	
	    public int GiocaAssiemeVolte(Giocatore g) {
		    int volte = 0;
		    foreach (Giocatore compagno in listaCompagni) {
			    if (g == compagno) volte++;
		    }
		    return volte;
	    }
	
	    public int GiocaControVolte(Giocatore g) {
		    int volte = 0;
		    foreach (Giocatore avversario in listaAvversari) {
			    if (g == avversario) volte++;
		    }
		    return volte;
	    }



        //public void stampaCompagni() {
        //    Logger.print("Compagni:");
        //    foreach (Giocatore g in listaCompagni)
        //    {
        //        Logger.print(" "+g.NomeCompleto);
        //    }
        //    int NPartite = Torneo.getListaPartite().Count;
        //    int NCompagni = listaCompagni.Count;
        //    for (int i = 0; i < (NPartite - NCompagni); i++)
        //    {
        //        Logger.print("\t\t");
        //    }
        //}

            
        //    public void stampaAvversari()
        //{
        //    Logger.print("Avversari:");
        //    foreach (Giocatore g in listaAvversari)
        //    {
        //        Logger.print(" " + g.NomeCompleto);
        //    }
        //    //Logger.println();
        //}
        //public void stampaCompagniAvversari() {
        //    Logger.print(this.NomeCompleto);
        //    stampaCompagni();
        //    stampaAvversari();
        //    Logger.println();
        //}
	
    }
}
